/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package br.com.bld.model.cliente;

import br.com.bld.util.facade.BLDDataErro;
import java.util.Date;

/**
 *
 * @author Pedro
 */
public class ClienteEntity implements BLDDataErro {
    
    public static final String CLASS_ID = "ClienteEntity";
    
    private String razaoSocial;
    private String nomeFantasia;
    private Long cnpj;
    private String inscricaoEstadual;
    private Long categoriaId;
    private Long contatoId;
    private Long planoId;
    private Date dataCadastro;
       
    public static final String CAMPO_RAZAO_SOCIAL = "Razão Social";
    public static final String CAMPO_NOME = "Nome";
    public static final String CAMPO_CNPJ = "CNPJ";
    public static final String CAMPO_INSCRICAO_ESTADUAL = "Inscrição Estadual";
   
    /**
     * @return the razaoSocial
     */
    public String getRazaoSocial() {
        return razaoSocial;
    }

    /**
     * @param razaoSocial the razaoSocial to set
     */
    public void setRazaoSocial(String razaoSocial) {
        
        if(razaoSocial != null && razaoSocial.length() > 255)
            throw new IllegalArgumentException(TAMANHO_MAX_MAIOR);
                    
        this.razaoSocial = razaoSocial;
    }

    /**
     * @return the nomeFantasia
     */
    public String getNomeFantasia() {
        return nomeFantasia;
    }

    /**
     * @param nomeFantasia the nomeFantasia to set
     */
    public void setNomeFantasia(String nomeFantasia) {
        
        if(nomeFantasia != null && nomeFantasia.length() > 255)
            throw new IllegalArgumentException(TAMANHO_MAX_MAIOR);
        
        this.nomeFantasia = nomeFantasia;
    }

    /**
     * @return the cnpj
     */
    public Long getCnpj() {
        return cnpj;
    }

    /**
     * @param cnpj the cnpj to set
     */
    public void setCnpj(Long cnpj) {
        
        if(cnpj != null && cnpj <= 0)
            throw new IllegalArgumentException(VALOR_NAO_PERMITIDO);
            
        this.cnpj = cnpj;
    }

    /**
     * @return the inscricaoEstadual
     */
    public String getInscricaoEstadual() {
        return inscricaoEstadual;
    }

    /**
     * @param inscricaoEstadual the inscricaoEstadual to set
     */
    public void setInscricaoEstadual(String inscricaoEstadual) {
        
        if(inscricaoEstadual != null && inscricaoEstadual.length() > 20)
            throw new IllegalArgumentException(TAMANHO_MAX_MAIOR);
        
        this.inscricaoEstadual = inscricaoEstadual;
    }

    /**
     * @return the dataCadastro
     */
    public Date getDataCadastro() {
        return dataCadastro;
    }

    /**
     * @param dataCadastro the dataCadastro to set
     */
    public void setDataCadastro(Date dataCadastro) {
        this.dataCadastro = dataCadastro;
    }

    /**
     * @return the categoriaId
     */
    public Long getCategoriaId() {
        return categoriaId;
    }

    /**
     * @param categoriaId the categoriaId to set
     */
    public void setCategoriaId(Long categoriaId) {
        
        if(categoriaId == null || categoriaId <= 0)
            throw new IllegalArgumentException(VALOR_NAO_PERMITIDO);
        
        this.categoriaId = categoriaId;
    }

    /**
     * @return the contatoId
     */
    public Long getContatoId() {
        return contatoId;
    }

    /**
     * @param contatoId the contatoId to set
     */
    public void setContatoId(Long contatoId) {
        this.contatoId = contatoId;
    }

    /**
     * @return the planoId
     */
    public Long getPlanoId() {
        return planoId;
    }

    /**
     * @param planoId the planoId to set
     */
    public void setPlanoId(Long planoId) {
        this.planoId = planoId;
    }
    
}
